home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-11-08 | 2.0 KB | 62 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: FWExtMgr.h
- // Release Version: $ 1.0d11 $
- //
- // Copyright: © 1995 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #ifndef FWEXTMGR_H
- #define FWEXTMGR_H
-
- #ifndef FWDICTLI_H
- #include "FWDictLi.h"
- #endif
-
- //========================================================================================
- // Forward Declarations
- //========================================================================================
-
- class ODExtension;
- class FW_CLASS_ATTR FW_CPart;
- struct FW_CLASS_ATTR FW_SPrivExtension;
-
- //========================================================================================
- // class FW_CPrivExtensionMap
- //========================================================================================
-
- class FW_CLASS_ATTR FW_CPrivExtensionMap : public FW_CPrivDictionaryList
- {
- public:
- FW_CPrivExtensionMap();
- virtual ~FW_CPrivExtensionMap();
- protected:
- virtual FW_Boolean KeysMatch(FW_PrivKeyType key1,FW_PrivKeyType key2) const;
- };
-
- //========================================================================================
- // class FW_CExtensionManager
- //========================================================================================
-
- class FW_CLASS_ATTR FW_CExtensionManager
- {
- public:
- typedef ODExtension* (*CreateExtensionFunc)(Environment *ev, FW_CPart *part, const char * const name);
-
- ~FW_CExtensionManager();
- FW_CExtensionManager(FW_CPart *part);
-
- void RegisterExtension(Environment *ev, const char * const name, CreateExtensionFunc func);
- FW_Boolean HasExtension(Environment *ev, const char* const name);
- ODExtension* AcquireExtension(Environment *ev, const char* const name);
- void ReleaseExtension(Environment *ev, ODExtension *extension);
-
- private:
- FW_CPart *fPart;
- FW_CPrivExtensionMap fNameToCreateFuncMap;
- FW_CPrivExtensionMap fActiveExtensions;
- };
-
- #endif
-